package com.etc.Day5;

/**
 * @Author kalista
 * @Description 老鼠
 * @Date 2020/10/26  10:20
 **/
public class Mouse extends Animal {

    private String name = "tom";

    public Mouse(String name, int id) {
        super(name, id);
    }

    /**
     * 继承中的变量
     *
     * 在子类中的方法中访问一个变量  采用的就近原则
     * 1. 子类的局部范围去找
     * 2. 子类的成员变量去找
     * 3. 父类成员变量去找
     * 4. 如果父类也没有就报错
     *
     */


    public void dadong(){
        String name = "米老数";
        System.out.println(super.name + "打洞");
        this.chengge();
        super.sleep();
        super.introduction();
    }


    public void chengge(){
        System.out.println("唱歌");
    }

    public static void main(String[] args) {
        Mouse mouse = new Mouse("jerry",19);
        mouse.eat();

    }

    // super   和    this 关键字
    /**
     * this 代表本类对象的引用
     * super 代表 父类存储空间的标识  （父类对象的引用）
     *
     * 成员变量
     * this.成员变量 - 访问本类成员变量
     * super 成员变量 - 访问父类的成员变量
     *
     *
     * 成员方法
     * this.成员方法   访问本类成员方法
     * super.成员方法   访问父类成员方法
     *
     *
     * 构造方法
     * this() 访问本类
     * super() 父类构造方法
     *
     */

    // 必须方法得名字和父类方法得  名字相同  参数相同 返回值相同  修饰符得权限只能大不能小
    // 注解 Override
    @Override// 标签
    public void  eat() {
        System.out.println(name + "嘎嘎吃");

    }

    //方法重载  有关系  方法名字  参数  参数位置 参数数量
    // 方法重载  没关系  修饰符 返回值
//    public void add(int a){
//
//    }
//     public int add(int a ){
//
//    }
}
